<?php

namespace WebmanGrpc\Interceptor;

use Google\Protobuf\Internal\Message;
use Grpc\ServerContext;

/**
 * 服务端拦截器接口
 * 
 * 所有服务端拦截器都应实现此接口
 */
interface ServerInterceptorInterface
{
    /**
     * 拦截处理
     * 
     * @param Message $request 请求消息
     * @param ServerContext $context 服务器上下文
     * @param callable $next 下一个处理器
     * @return Message 响应消息
     */
    public function intercept(Message $request, ServerContext $context, callable $next): Message;
}